package com.linkage.common.exception.enums;

/**
 * core模块的异常集合
 *
 * @author renningyu
 * @Date 2019/5/29 17:17
 */
public enum CoreExceptionEnum implements AbstractBaseExceptionEnum {

    /**
     * 其他
     */
    INVLIDE_DATE_STRING(400, "输入日期格式不对"),
    AUTH_EMPTY_ERROR(401, "token数据为空"),
    AUTH_VERIF_ERROR(401, "token失效"),
    NO_PERMISSION(401, "无权限查看"),
    JCAPTCHA_EXPIRE(500, "验证码失效"),
    JCAPTCHA_ERROR(500, "验证码错误"),
    NO_PERMISSION_REQUEST(401, "无权限请求"),
    NO_PERMISSION_ADD(401, "无权限添加"),
    NO_PERMISSION_UPDATE(401, "无权限修改"),
    /**
     * 初始化数据库的异常
     */
    NO_CURRENT_USER(700, "当前没有登录的用户"),
    INIT_TABLE_EMPTY_PARAMS(701, "初始化数据库，存在为空的字段"),

    /**
     * 其他
     */
    WRITE_ERROR(500, "渲染界面错误"),
    DATA_ERROR(500, "数据异常"),
    INVENTORY_ERROR(500, "锁定库存异常"),
    ENCRYPT_ERROR(600, "加解密错误"),

    /**
     * 文件上传
     */
    FILE_READING_ERROR(400, "FILE_READING_ERROR!"),
    FILE_NOT_FOUND(400, "FILE_NOT_FOUND!"),

    /**
     * 数据库字段与实体字段不一致
     */
    FIELD_VALIDATE_ERROR(700, "数据库字段与实体字段不一致!"),

    /**
     * 错误的请求
     */
    PAGE_NULL(404, "请求页面不存在"),
    NO_AUTH(401, "用户未授权"),
    AUTH_PARAM_ERROR(401, "参数错误"),
    TOKEN_EXPIRED(401, "上一个令牌已失效，无法刷新令牌"),
    IO_ERROR(500, "流读取异常"),
    SERVICE_ERROR(500, "服务器异常"),
    UPLOAD_IMAGE_ERROR(500, "上传图片失败"),
    PARAM_ERROR(500, "参数错误"),
    REMOTE_SERVICE_NULL(404, "远程服务不存在"),
    ASYNC_ERROR(5000, "数据在被别人修改，请稍后重试"),
    EXIST_ACCOUNT_MANAGER(8003, "该账号已经注册！"),
    EXIST_EMAIL_MANAGER(8008, "该邮箱已经注册！"),
    EXIST_PHONE_MANAGER(8008, "该手机号已经注册！"),
    PASSWORD_ERROR(500, "密码错误"),
    EXPIRE_VERIFICATION(500, "验证码失效，请重新获取"),
    ERROR_VERIFICATION(500, "验证码错误，请重新获取"),
    NO_USER_ERROR(500, "无此用户"),
    USER_PASSWORD_ERROR(500, "用户不存在/密码错误");

    CoreExceptionEnum(int code, String message) {
        this.code = code;
        this.message = message;
    }

    private Integer code;

    private String message;

    @Override
    public Integer getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return message;
    }

}
